package juc.thread.secuity;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.Date;

/*
* 测试 simpleDateFormat(可变类)的线程安全问题
* */
public class Test16 {
    public static void main(String[] args) {
        //线程不安全
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
        for (int i = 0; i <10 ; i++) {
            new Thread(()->{
                synchronized (sdf) {
                    try {
                        System.out.println(sdf.parse("1968-10-10"));
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                }
            }).start();
        }
        //线程安全
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        for (int i = 0; i <10 ; i++) {
            new Thread(()->{
                    System.out.println(dtf.parse("1968-10-10"));
            }).start();
        }
    }
}
